
/**
 * 
 * 
 * 矩形相交的面积
 * 
 * 题目描述

给出3组点坐标(x, y, w, h)，-1000<x,y<1000，w,h为正整数。
(x, y, w, h)表示平面直角坐标系中的一个矩形：
x, y为矩形左上角坐标点，w, h向右w，向下h。
(x, y, w, h)表示x轴(x, x+w)和y轴(y, y-h)围成的矩形区域；
(0, 0, 2, 2)表示 x轴(0, 2)和y 轴(0, -2)围成的矩形区域；
(3, 5, 4, 6)表示x轴(3, 7)和y轴(5, -1)围成的矩形区域；
求3组坐标构成的矩形区域重合部分的面积。
输入描述
3行输入分别为3个矩形的位置，分别代表“左上角x坐标”，“左上角y坐标”，“矩形宽”，“矩形高” -1000 <= x,y < 1000

输出描述
输出3个矩形相交的面积，不相交的输出0。

用例
输入	
1 6 4 4
3 5 3 4
0 3 7 3
输出	2
 */

import java.util.Arrays;
import java.util.Scanner;

/**
  * 
  题目解析


如上图所示，交叉区域的

长：Math.min(x1+w1, x2+w2, x3+w3) - Math.max(x1, x2, x3)

宽：Math.min(y1, y2, y3) - Math.max(y1-h1, y2-h2, y3-h3)

如果长度 <=0 或者 宽度<=0，则三个矩形不存在交叉区域，返回0

  */
public class 矩形相交的面积 {
    public static void main(String[] args) {
        
        try{

            Scanner scanner = new Scanner(System.in);
            PointInfo point1;
            PointInfo point2;
            PointInfo point3;


            int[] line1 = Arrays.stream(scanner.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();
            int[] line2 = Arrays.stream(scanner.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();
            int[] line3 = Arrays.stream(scanner.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();

            point1 = new PointInfo(line1[0], line1[1], line1[2], line1[3]);
            point2 = new PointInfo(line2[0], line2[1], line2[2], line2[3]);
            point3 = new PointInfo(line3[0], line3[1], line3[2], line3[3]);

            //套用公式
            int intersectW = Math.min(Math.min(point1.x+point1.w, point2.x+point2.w), point3.x+point3.w) 
            - Math.max(Math.max(point1.x, point2.x), point3.x);
            int intersectH = Math.min(Math.min(point1.y, point2.y), point3.y) 
            - Math.max(Math.max(point1.y-point1.h, point2.y-point2.h), point3.y - point3.h);

            if(intersectW <=0 || intersectH<=0){

                System.out.println(""+0);
            } else {

                System.out.println(""+(intersectW*intersectH));
            }


        }catch(Exception e){
            e.printStackTrace();
        }
    }

    private static class PointInfo {

        public int x;
        public int y;
        public int w;
        public int h;


        public PointInfo(int x, int y, int w, int h){

            this.x = x;
            this.y = y;
            this.w = w;
            this.h = h;
        }

    }
}
